Relational databases, and their corresponding management systems, are very popular for storage and access of data. Relational databases are organized into tables which consist of rows and columns of data. The rows are formally called tuples. A database will typically have many tables and each table will typically have multiple tuples and multiple columns. The tables are typically stored on direct access storage devices (DASD) such as magnetic or optical disk drives for semi-permanent storage.
Typically, such databases are accessible through queries in SQL, Structured Query Language, which is a standard language for interactions with such relational databases. An SQL query is received by the management software for the relational database and is then used to look up information in the database tables.
Database proxies are often used to manage database access. For example, U.S. Pat. No. 7,716,206 to Aaron describes a system which features a proxy in order to maintain user privacy when searching a database. In some cases, the database proxy is transparent, such that the end user is not aware of its existence, nor does the end user need to take any special action when interacting with the database through such a proxy. U.S. Pat. No. 7,274,783 to Yoakum et al describes such a transparent proxy implementation.
Other problems with such systems include the inability to provide sufficient security for their respective databases. Data in such databases needs to be well protected, yet at the same time, needs to be widely available to various front end applications and queries, including through such non-secure computer networks as the Internet.
One example of a security method relates to a database firewall, in which the firewall prevents unauthorized access to the database (or indeed to other computers within a protected network). U.S. Pat. No. 7,444,408 to Rajavelu, et al. describes a method for automatically configuring a firewall for a secure “enclave” within a larger network.